package com.xiaoxu.scala_base.三班._1_Scala集合

object ListApp extends App {


  /**
    * 不可变集合
    * 可做为广播变量、共享变量能优化性能，节省空间
    */
  Nil //空的集合
  val l = List(1, 2, 3, 4, 5)

  l.head

  l.tail //选择除了第一个元素的所有元素，返回值为List类型
  l.tail(2) //选择倒数第二个 元素

  val l2 = 1 :: Nil

  val l3 = 8 :: l //拼接元素 8  到 l头部

  val l4 = 1 :: 2 :: 3 :: Nil


  /**
    * 可变列表
    */
  val l5 = scala.collection.mutable.ListBuffer[Int]()

  // 添加元素
  l5 += 2
  l5 += (3, 4, 5)
  l5 ++= List(6, 7, 8, 9)

  //去除元素
  l5 -= 2
  l5 -= 3
  l5 -= (1, 4)
  l5 --= List(5, 6, 7, 8)

  println(l5)


  l5.isEmpty
  l5.head
  l5.tail


  def sum(nums: Int*): Int = {
    if (nums.length == 0) {
      0
    } else {
      nums.head + sum(nums.tail: _*)
    }
  }

  val set = scala.collection.mutable.Set[Int]()
  set += 1
  set += (1, 1,3,3,4)

  println(sum())
  println(sum(1, 2, 3, 4))
}
